/**
在 TypeScript 中，类型别名（Type Alias）是一种为特定类型创建新名称的方式。它可以使代码更加简洁和可读，尤其是在处理复杂类型时。
  1. 基本概念
  - 类型别名 是使用  `type`  关键字定义的一个新名称，可以用来表示基本类型、对象类型、联合类型、元组等。
  - 类型别名并不创建新的类型，而是为现有类型提供一个新的名称。

  2. 使用方式
   1. 基本类型别名
  可以为基本类型创建别名，例如字符串、数字等。
  type Name = string;
  type Age = number;

  let userName: Name = "Alice";
  let userAge: Age = 30;
   2. 对象类型别名

  可以为对象结构定义别名。
  type User = {
    name: string;
    age: number;
  };

  let user: User = {
    name: "Alice",
    age: 30,
  };
   3. 联合类型别名
  可以定义联合类型，表示一个变量可以是多种类型中的一种。
  type ID = string | number;

  let userId: ID = "123";
  userId = 456; // 也可以是数字
   4. 元组类型别名
  可以为元组类型定义别名。
  type Point = [number, number];

  let point: Point = [10, 20];
  3. 优点
  - 可读性：类型别名可以使代码更具可读性，尤其是在处理复杂类型时。
  - 简化代码：可以避免重复定义相同的类型，提高代码的可维护性。
  - 灵活性：可以轻松地修改类型别名，而不需要在多个地方更改类型定义。

  4. 注意事项
  - 类型别名不能用于定义接口（interface）所能做的某些事情，例如实现类的结构。
  - 类型别名可以与接口互换使用，但在某些情况下，接口提供了更强的扩展性。

  5. 总结
  类型别名在 TypeScript 中是一个强大且灵活的工具，允许开发者为各种类型创建易于理解的名称。通过使用类型别名，可以提高代码的可读性和可维护性，尤其是在处理复杂的数据结构时。使用类型别名时，应根据具体需求和场景选择最合适的方式来定义类型。
 */
// 类型别名: type
type MyNumber = number;
const age: MyNumber = 18;

type IDType = number | string;

function getId(id: IDType) {
  console.log(id);
}

type PointType = {
  x: number;
  y: number;
  z?: number;
}

function printCoordinate(point: PointType) {
  console.log(point.x, point.y, point.z);
}

export {};